package net.qiqbframework.eventsourcing.dao;


import com.baomidou.mybatisplus.annotation.TableName;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import net.qiqbframework.persisthanding.dao.BasicEntityPo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;


@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("qiqb_domain_event")
@Table("qiqb_domain_event")
public class DomainEventPo implements BasicEntityPo {

    @Id
    private String id;

    /**
     * 足迹ID
     */
    private String traceId;


    /**
     * 时间创建人
     */
    private String creator;

    /**
     * 事件源。
     */
    private String source;

    /**
     * 事件元数据
     */
    private String metaData;

    /**
     * 事件实际载体
     */
    private byte[] payload;
    /**
     * 领域事件类名称
     */
    private String payloadType;

    /**
     * 聚合名称。默认是聚合类型
     */
    private String aggregateName;

    private String aggregateIdentifier;
    /**
     * 事件实际创建时间
     */
    private Long timestamp;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 序列号
     */
    private Long sequenceNumber;

}
